import HeroDTO from "../pojo/dto/HeroDTO";
import HeroVO from "../pojo/vo/HeroVO";

/*****************************
 *@file: HeroEntity
 *@author: 陈吕唐
 *@desc: Hero实体类 (最完整的英雄数据包括英雄的技能数据穿戴的装备,但是不包括战斗逻辑)
 *@date: 2024-02-27	18:29
 *****************************/
export default class HeroEntity implements HeroVO {

    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /************************
     * 英雄属性
     ***********************/
    public defense: number;
    public name: string;
    public moveSpeed: number;
    public skillList: string;
    public criticalDamage: number;
    public attack: number;
    public attackInterval: number;
    public combatType: number;
    public critical: number;
    public health: number;
    public attackArea: number;
    public attackSpeed: number;
    public resName: string;
    public id: number;
    public level: number;
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/

    public constructor(value: HeroVO) {
        this.defense = value.defense;
        this.name = value.name;
        this.moveSpeed = value.moveSpeed;
        this.skillList = value.skillList;
        this.criticalDamage = value.criticalDamage;
        this.attack = value.attack;
        this.attackInterval = value.attackInterval;
        this.combatType = value.combatType;
        this.critical = value.critical;
        this.health = value.health;
    }
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /**
     * 更新英雄数据
     * @param dto 
     */
    public updateDTO(dto: HeroDTO) {
        //TODO:更新英雄数据
    }
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/
}